iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0
自我挑戰組

Identity Management 系列 第 22

22 - Strong Authentication

  • 分享至 

  • xImage
  •  

驗證使用者最常見的方式就是檢查使用者在系統中的帳號與密碼,然而這樣的驗證方式在安全性方面來說相對薄弱,因為一旦密碼被竊取,那麼各種敏感的資料就會暴露出來。

因此在稍微注重安全性的系統當中,就會採用比較安全的驗證方式

Strong Authentication

在密碼之外,有些驗證方式是相對安全的,譬如 OTP (One-Time Password)。

OTP 是一種只會存在在很短的時間、只會使用一次的密碼,通常由系統發送到使用者的手機或信箱當中,或者是透過其他的軟體、硬體生成。OTP 之所以相對安全的原因是,它的續存時間相對較短,而且並非固定不變,因此大幅減少被竊取的機會。

另外生物識別也是相對安全,譬如指紋、虹膜辨識等驗證方式。

MFA (Multi-Factor Authentication)

系統為了加強安全性,有時會要求使用兩種以上的驗證方式。這樣做的好處是避免單一驗證方式被破解的風險,兩種以上的驗證方式同時被破解的機率相對較低。

還記得先前提到的驗證方式主要分三種:

  • 他「是」什麼
  • 他「有」什麼
  • 他「知道」什麼

因此除了最基本的密碼之外,系統可能會額外要求不同的驗證方式,譬如 OTP 或是指紋辨識等。

Step Up Authentication

MFA 雖然看起來萬無一失,但是使用者每次登入系統的時候都要走過 MFA 流程,不見得是最好的使用者體驗。如果我們能夠讓使用者先進入系統進行基本的活動,然後在遇到比較重要或敏感的活動時,再次驗證使用者的身份,也許就會是比較有效率、且體驗較好的做法。

舉例來說,使用者可以透過密碼通過驗證、登入系統,然後瀏覽資訊,但如果使用者想要更新個人資訊,在送出請求時,系統會跳出提示視窗,並要求使用者進行額外的驗證(常見的方式像是 OTP),如此一來,就可以確保重要的活動(譬如更新個人資訊)可以受到較高的保護。

在先前提到的 ID Token,當中有個內容為

  • acr - authentication context class reference, authentication context class 的 identifier。Authentication context class 用來提供關於 Level Of Assurance 的資訊

所以在剛剛提到的例子當中,使用者最初透過密碼登入系統之後,舉例來說這時的 acr 會是 level 1,而當通過 Step Up Authentication 流程之後,這時在 ID Token 當中的 acr 就會「升級」(step up) 為 level 2,因此拿到 ID Token 的 Client 就會知道使用者已經 step up 了,可以進行原本被限制的活動。

同時,系統也會希望 level 2 的續存時間是有限制的,讓 token 暴露在外的機會降低,因此可能會採取 timeout 或是 step down 的機制,讓使用者不會一直處在「擁有更多權限」的狀態。


上一篇
21 - About sessions
下一篇
23 - Silent Authentication
系列文
Identity Management 31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言